package com.qfjy.controller.homeWork917.liubingjian;

/**
 * @Author lbj
 * @Date 2021-09-17 10:56
 */
public class ObserverPatternTest {
    public static void main(String[] args) {
        //建立一个目标类
        MyTopic topic = new MyTopic();
        //建立三个观察者
        Observer obj1 = new MyTopicSubscriber("Obj1");
        Observer obj2 = new MyTopicSubscriber("Obj2");
        Observer obj3 = new MyTopicSubscriber("Obj3");
        //对目标类和观察者进行绑定
        topic.register(obj1);
        topic.register(obj2);
        topic.register(obj3);
        obj1.setSubject(topic);
        obj2.setSubject(topic);
        obj3.setSubject(topic);
        //目标状态还未发生改变时观察者对目标类做出的反应
        obj1.update();
        //目标状态发生了改变之后将信息改变的发送给各个观察者，各个观察者对此作出反应
        topic.postMessage("New Message");
    }

}
